﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FuenteDeDatos.Interfaces;
using System.Data.SqlClient;
using System.Diagnostics;

namespace FuenteDeDatos.DAOSqlServer
{
    public class DAOSqlServerAccesoConexion : IDAOAccesoConexion
    {
        #region Atributos

        private static String nombreBD;
        private static String fuenteDatos;
        private static String cadenaDeConexion;
        private static SqlConnection conexion = new SqlConnection();

        #endregion

        #region Encapsulamiento

        public static SqlConnection AccederAconexion
        {
            get { return conexion; }
            set { conexion = value; }
        }

        /// <summary>
        /// Metodo que retorna la cadena de conexion actual a la base de datos.
        /// </summary>
        /// <returns></returns>
        public String GetCadenaConexion()
        {
            return (cadenaDeConexion);
        }

        #endregion

        #region Constructores

        public DAOSqlServerAccesoConexion()
        {

        }

        #endregion

        #region Metodos

        /// <summary>
        /// Metodo que permite establecer conexion con la base de datos.
        /// </summary>
        public void AbrirConexionBd()
        {
            try
            {
                String estadoConexion = null;
                estadoConexion = conexion.State.ToString();

                if (estadoConexion.Equals("Open"))
                    conexion.Close();

                conexion.ConnectionString = GetCadenaConexion();
                conexion.Open();
            }

            catch (SqlException)
            {

            }

        }

        /// <summary>
        /// Metodo que permite cerrar la conexion a la base de datos
        /// </summary>
        public void CerrarConexionBd()
        {
            String estadoConexion = null;
            estadoConexion = conexion.State.ToString();

            if (estadoConexion.Equals("Open"))

                conexion.Close();
        }

        public SqlConnection ObjetoConexion()
        {
            return (conexion);
        }

        #endregion
    }

}
